Skip to content

fix: Discriminatory Union types not working after migration to Pydantic v2#31

Merged
Martin005 merged 2 commits intomainfrom
fix-discriminatory-union-types
Mar 10, 2026
Merged

fix: Discriminatory Union types not working after migration to Pydantic v2#31
Martin005 merged 2 commits intomainfrom
fix-discriminatory-union-types

Conversation

@Martin005
Copy link
Owner

This pull request refactors several model files in the phrasetms_client package to improve code readability and consistency, particularly around discriminator handling and field definitions. The main changes involve renaming internal discriminator variables, formatting field definitions for clarity, and updating the logic for discriminator-based deserialization. These updates make the codebase easier to maintain and less error-prone.

Discriminator Handling and Serialization Logic

  • Internal discriminator variables (__discriminator_property_name, __discriminator_value_class_map) are renamed to use a single underscore prefix (e.g., _discriminator_property_name) for consistency and clarity across abstract_analyse_settings_dto.py, abstract_connector_dto.py, and abstract_project_dto.py. The logic for accessing these variables is updated to use .default for safer attribute access. [1] [2] [3]
  • The from_json and from_dict methods are rewritten to use explicit string type hints and improved formatting for union types, enhancing readability and maintainability. Error messages in these methods are also updated to reference the new discriminator variable names. [1] [2] [3]

Field Definition Formatting

  • Field definitions in model classes are reformatted for clarity, using multi-line formatting and explicit descriptions, which improves readability and makes it easier to understand the purpose of each field. This is applied in abstract_analyse_settings_dto.py, abstract_connector_dto.py, and abstract_project_dto.py. [1] [2] [3]

Import and Style Consistency

  • Imports are reorganized and unnecessary blank lines are removed to ensure consistent style and improve code organization in all affected files. [1] [2] [3] [4] [5] [6]

These changes collectively enhance the maintainability, clarity, and reliability of the model classes in the codebase.- Updated docstring formatting in multiple model files to remove leading indentation.

  • Reorganized and formatted field definitions for better clarity in CommonConversationDto, ProviderReference, QACheckDtoV2, SegmentWarning, and UserDetailsDtoV3.
  • Changed discriminator property names from double underscores to single underscores for consistency across models.
  • Enhanced error messages in the from_dict and from_json methods to provide clearer context on failures.
  • Applied consistent formatting for enum validation logic in field validators.
  • Removed unnecessary comments and improved overall code structure for maintainability.

…ic v2

- Updated docstring formatting in multiple model files to remove leading indentation.
- Reorganized and formatted field definitions for better clarity in `CommonConversationDto`, `ProviderReference`, `QACheckDtoV2`, `SegmentWarning`, and `UserDetailsDtoV3`.
- Changed discriminator property names from double underscores to single underscores for consistency across models.
- Enhanced error messages in the `from_dict` and `from_json` methods to provide clearer context on failures.
- Applied consistent formatting for enum validation logic in field validators.
- Removed unnecessary comments and improved overall code structure for maintainability.
@Martin005 Martin005 merged commit 0b617b1 into main Mar 10, 2026
6 checks passed
@Martin005 Martin005 deleted the fix-discriminatory-union-types branch March 10, 2026 16:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant